// 一言.js - 处理 /yi_yan 路由的请求

const fn一言句子 = require("./处理一言句子");
module.exports = function fn一言(req, res) {
  console.log(`为用户【${req.当前用户?.用户名}】返回 一言`);

  let _原始类型 = req.query.t;
  let _类型 = "all"; // 默认值
  if (_原始类型 && /^[a-lA-L]$/.test(_原始类型)) {
    _类型 = _原始类型.toLowerCase();
  }

  const _返回格式 = req.query.c === "1" ? 1 : 0;

  // 规范最小长度：如果是大于等于0的数字则返回数字，其他返回默认值0
  let _最小长度 = 0; // 默认值
  const _原始最小长度 = parseInt(req.query.n, 10);
  if (!isNaN(_原始最小长度) && _原始最小长度 >= 0) {
    _最小长度 = _原始最小长度;
  }

  // 规范最大长度：如果是大于等于0的数字则返回数字，其他返回默认值30
  let _最大长度 = 30; // 默认值
  const _原始最大长度 = parseInt(req.query.x, 10);
  if (!isNaN(_原始最大长度) && _原始最大长度 >= 0) {
    _最大长度 = _原始最大长度;
  }

  // 检查最大值和最小值的差值，如果差值小于1，则都使用默认值
  if (_最大长度 - _最小长度 < 1) {
    _最小长度 = 0;
    _最大长度 = 30;
  }

  try {
    res.json(fn一言句子(_类型, _返回格式, _最小长度, _最大长度));
  } catch (error) {
    console.error("❌ 处理 一言 请求时发生错误:", error.message);
    res.status(500).json({
      错误: "服务器内部错误",
      消息: "处理请求时发生错误",
    });
  }
};
